
# Create your models here.
#导入Django的模型模块，用于创建数据库模型
from django.db import models

#创建一个状态枚举类，继承自Django的TextChoices，用于定义可复用的选项集合。
class Status(models.TextChoices):
    #定义未开始状态的选项，'u'是存入数据库的值，"Not started yet"是给人看的显示文本。
    UNSTARTED = 'u', "Not started yet"
    #定义进行中状态的选项。
    ONGOING = 'o', "Ongoing"
    #定义已完成状态的选项。
    FINISHED = 'f', "Finished"

#创建任务模型类，继承自Django的基础模型类。
class Task(models.Model):
    #定义任务名字段
    #verbose_name：在Admin后台显示的字段名称
    #max_length=65：最大长度65字符
    #unique=True：强制该字段值在数据库中唯一
    name = models.CharField(verbose_name="Task name", max_length=65, unique=True)
    #定义任务状态字段
    #choices=Status.choices：限制该字段只能从Status类的选项中选择
    status = models.CharField(verbose_name="Task status", max_length=1, choices=Status.choices)


    #定义对象的字符串表示，在Admin后台或shell中显示时用任务名称代替默认的object表示。
    def __str__(self):
        return self.name
